package com.java.second_goods.service;

import com.java.second_goods.entity.Promotion;

import java.util.List;

/**
 * 活动 服务层
 */
public interface PromotionService {
    /**
     * 查询活动信息
     *
     * @param id 活动ID
     * @return 活动信息
     */
    Promotion selectPromotionById(Integer id);

    /**
     * 查询活动列表
     *
     * @param promotion 活动信息
     * @return 活动集合
     */
    List<Promotion> selectPromotionList(Promotion promotion);

    /**
     * 查询有效的活动列表
     *
     * @return 活动列表
     */
    List<Promotion> selectEnabledPromotions();

    /**
     * 根据类型查询活动列表
     *
     * @param type 类型
     * @return 活动列表
     */
    List<Promotion> selectPromotionsByType(String type);

    /**
     * 新增活动
     *
     * @param promotion 活动信息
     * @return 结果
     */
    int insertPromotion(Promotion promotion);

    /**
     * 修改活动
     *
     * @param promotion 活动信息
     * @return 结果
     */
    int updatePromotion(Promotion promotion);

    /**
     * 删除活动信息
     *
     * @param id 活动ID
     * @return 结果
     */
    int deletePromotionById(Integer id);

    /**
     * 批量删除活动信息
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deletePromotionByIds(Integer[] ids);

    /**
     * 更新活动状态
     *
     * @param promotionId 活动ID
     * @param status 状态
     * @return 结果
     */
    int updatePromotionStatus(Integer promotionId, Integer status);
}